package com.apiauto.util;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

import org.testng.IRetryAnalyzer;
import org.testng.annotations.ITestAnnotation;
import org.testng.internal.annotations.IAnnotationTransformer;

/**
 * PS:监听测试类注解,不存在TestNGRetry属性的自动添加
 * @author lkk
 *
 */
public class RetryListener implements IAnnotationTransformer {
	/**
	 * PS:监听测试类注解方法
	 */
	@Override
	public void transform(ITestAnnotation iTestAnnotation, Class aClass, Constructor constructor, Method method) {
		// 获取到retryAnalyzer的注解
		@SuppressWarnings("deprecation")
		IRetryAnalyzer retryAnalyzer = iTestAnnotation.getRetryAnalyzer();
		//如果注解为空，则动态设置注解，以确保用例失败后重跑。
		if (retryAnalyzer == null) {
			//给测试类设置注解
			iTestAnnotation.setRetryAnalyzer(com.apiauto.util.TestNGRetry.class);
		}
	}
}
